<?php
/**
 * Created by PhpStorm.
 * User: s.utkin
 * Date: 09.01.2015
 * Time: 18:44
 */

namespace Pinenut\Queue;


abstract class Worker extends \Action {
	protected $items;

	public function __construct(\Pinenut\Request $request){
		parent::__construct($request);

		$this->response->noRender(true);
		$this->response->noCache(true);
		$this->items = (array)$this->request->items;
	}

	/**
	 * Обрабатывает пачку уведомлений
	 *
	 * @return array
	 */
	protected function run()
	{
		$successList = [];
		# Перебираем массив уведомлений получателя
		/** @var ProcessingQueue[] $items */
		foreach ($this->items as $item) {
			# Пытаемся создать уведомления на отправку получателю
			try {
				/*
				 * Если для очередного элемента очереди уведомления успешно созданы - добавляем
				 * id элемента в successList - список успешно обработанных элементов
				 */
				if ($this->process($item)) {
					$successList[] = (string)$item;
				}
			} catch (\Exception $e) {
				/*
				 * TODO: Надо сделать репорт
				 */
			}
		}

		return $this->response->successList = $successList;
	}

	public function process(ProcessingQueue $item) {
		return false;
	}
} 